Testing as a service

ABSTRACT

Embodiments of the present disclosure relate to systems, methods, and user interfaces that automate the workflow testing process. Users can configure, automate and execute repeating workflow tests associated with software updates or upgrades. In doing so, issues with the updates or upgrades are proactively prevented. To do so, a selection of one or more business processes is initially received. The one or more business processes are combined into a client workflow. Test data and assertion types are received for each business process of the one or more business processes. A script and metadata containing the client workflow name and the one or more business process names utilized to create the client workflow is stored and the client workflow can be executed in a target environment. Any errors in the client workflow are detected and a notification is provided to a user for follow-up and resolution.

BACKGROUND

As companies are moving towards cloud adoption so that the latest andgreatest innovations can be adopted quickly, continuous delivery plays akey role. For example, continuous delivery ensures that code can berapidly and safely deployed to production environments. Many softwaresolutions require frequent updates using mass deployment. However, everynew software delivery results in clients having to perform a series oflong running workflow tests to make sure the quality of the software issuitable and does not break any workflows. If any issues are discoveredduring client testing, fixes are applied, and the workflow tests arerepeated. Moreover, the testing often requires engaging experts andtakes more than a month to complete. For these reasons, many clients arereluctant to apply new releases frequently.

BRIEF SUMMARY

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

Embodiments of the present disclosure relate to systems, methods, anduser interfaces that automate the workflow testing process. Moreparticularly, embodiments of the present disclosure enables users toconfigure, automate and execute repeating workflow tests associated withsoftware updates or upgrades. In doing so, issues with the updates orupgrades are proactively detected and resolved to ensure better qualityof the updates or upgrades. To do so, a selection of one or morebusiness processes is initially received. The one or more businessprocesses are combined into a client workflow. Test data and assertiontypes are received for each business process of the one or more businessprocesses. A script and metadata containing the client workflow name andthe one or more business process names utilized to create the clientworkflow is stored and the client workflow can be executed in a targetenvironment. Any errors in the client workflow are detected and anotification is provided to a user for follow-up and resolution.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The present invention is described in detail below with reference to theattached drawing figures, wherein:

FIG. 1 is a block diagram of an exemplary operating environment suitableto implement embodiments of the present invention;

FIG. 2 depicts an exemplary framework of a testing-as-a-service systemsuitable to implement embodiments of the present invention;

FIG. 3 depicts an exemplary framework of a testing-as-a-service systemsuitable to implement embodiments of the present invention;

FIG. 4 depicts an illustrative screen display of a testing-as-a-servicesystem suitable to implement embodiments of the present invention;

FIG. 5 depicts a flow diagram illustrating a method for utilizing atesting-as-a-service system to deploy a new software package, inaccordance with an embodiment of the present invention; and

FIG. 6 depicts a flow diagram illustrating a method for creating andexecuting a client workflow in a test environment to detect errors inthe client workflow, in accordance with an embodiment of the presentinvention.

DETAILED DESCRIPTION

The subject matter of the present invention is described withspecificity herein to meet statutory requirements. However, thedescription itself is not intended to limit the scope of this patent.Rather, the inventors have contemplated that the claimed subject mattermight also be embodied in other ways, to include different steps orcombinations of steps similar to the ones described in this document, inconjunction with other present or future technologies. Moreover,although the terms “step” and/or “block” might be used herein to connotedifferent elements of methods employed, the terms should not beinterpreted as implying any particular order among or between varioussteps herein disclosed unless and except when the order of individualsteps is explicitly stated.

As noted in the background, as companies are moving towards cloudadoption so that the latest and greatest innovations can be adoptedquickly, continuous delivery plays a key role. For example, continuousdelivery ensures that code can be rapidly and safely deployed toproduction environments. Many software solutions require frequentupdates or upgrades using mass deployment. However, every new softwaredelivery results in clients having to perform a series of long runningworkflow tests to make sure the quality of the software is suitable anddoes not break any workflows. If any issues are discovered during clienttesting, fixes are applied, and the workflow tests are repeated.Moreover, the testing often requires engaging experts and takes morethan a month to complete. For these reasons, many clients are reluctantto apply new releases frequently.

Embodiments of the present disclosure relate to systems, methods, anduser interfaces that automate the workflow testing process. Moreparticularly, embodiments of the present disclosure enables users toconfigure, automate and execute repeating workflow tests associated withsoftware updates or upgrades. In doing so, issues with the updates orupgrades are proactively detected and resolved to ensure better qualityof the updates or upgrades. To do so, a selection of one or morebusiness processes is initially received. The one or more businessprocesses are combined into a client workflow. Test data and assertiontypes are received for each business process of the one or more businessprocesses. A script and metadata containing the client workflow name andthe one or more business process names utilized to create the clientworkflow is stored and the client workflow can be executed in a targetenvironment. Any errors in the client workflow are detected and anotification is provided to a user for follow-up and resolution.

The testing-as-a-service platform allows users to configure and automatetesting processes, reduce costs (e.g., support costs and user acceptancetesting costs), and reduce testing cycle times and go-live delays.Additionally, the testing-as-a-service platform encourages massdeployment of software updates or upgrades to remain current and enablesusers to exploit the latest innovations. The testing-as-a-serviceplatform also enables various user workflows to be learned and anydefects may be discovered early in the development process. Moreover,the various user workflow data can be analyzed and the workflows may beconfigured more efficiently. Each of these benefits provide confidenceto users that may otherwise forego software updates or upgrades, and indoing so, generally expedites the cloud adoption process.

The testing-as-a-service platform comprises several components, whichwill be discussed in more detail below. A user interface enables a userto stitch together business processes and build a workflow. Data iscaptured a single time by executed the built workflow that is later usedas test data when one or more of the business processes are updated orupgraded. Automated execution of the workflows can be scheduled orperformed on-demand, such as when testing a software update or upgrade.Additionally, client context customizations, such as adaptabilitysettings, are enabled.

Accordingly, one embodiment of the present disclosure is directed to oneor more computer storage media having computer-executable instructionsembodied thereon that, when executed by a computer, causes the computerto perform operations. The operations include receiving a selection ofone or more business processes. The one or more business processes arecombined into a client workflow. The operations also include receivingtest data and assertion types for each business process of the one ormore business processes. The operations further include storing a scriptand metadata containing the client workflow name and the one or morebusiness process names utilized to create the client workflow. Theoperations also include executing the client workflow in a targetenvironment. The operations further include detecting errors in theclient workflow and provide a notification to a user for follow-up andresolution.

In another embodiment, the present disclosure is directed to acomputerized method. The method comprises receiving a selection of oneor more business processes. The one or more business processes arecombined into a client workflow. The method also comprises receivingtest data and assertion types for each business process of the one ormore business processes. The method further comprises storing a scriptand metadata containing the client workflow name and the one or morebusiness process names utilized to create the client workflow. Themethod also comprises executing the client workflow in a targetenvironment. The method further comprises detecting errors in the clientworkflow and providing a notification to a user for follow-up andresolution.

In yet another embodiment, the present disclosure is directed to asystem. The system comprises a processor; and a computer storage mediumstoring computer-usable instructions that, when used by the processor,cause the processor to: receive a selection of one or more businessprocesses, the one or more business processes being combined into aclient workflow, wherein the selection of one or more business processesis received by intercepting user interaction with the one or morebusiness processes, determining a sequence of execution, and identifyingdocument object model events; receive test data and assertion types foreach business process of the one or more business processes; store ascript and metadata containing the client workflow name and the one ormore business process names utilized to create the client workflow,wherein the script and metadata containing the client workflow name andthe one or more business process names utilized to create the clientworkflow are stored in JavaScript Object Notation (JSON) format in aclient environment for workflow code generation; execute the clientworkflow in a target environment to verify a stability and reliabilityof a software change or update; and detect errors in the client workflowand provide a notification to a user for follow-up and resolution.

Having briefly described embodiments of the present invention, anexemplary operating environment suitable for use in implementingembodiments of the present invention is described below. FIG. 1 providesan aspect of an example operating environment with which embodiments ofthe present invention may be implemented. The aspect of an operatingenvironment is illustrated and designated generally as reference numeral100.

Example operating environment 100 comprises a general purpose computingdevice in the form of a control server 102. Exemplary components of thecontrol server 102 comprise a processing unit, internal system memory,and a suitable system bus for coupling various system components,including database cluster 104, with the control server 102. The systembus might be any of several types of bus structures, including a memorybus or memory controller, a peripheral bus, and a local bus, using anyof a variety of bus architectures. Exemplary architectures compriseIndustry Standard Architecture (ISA) bus, Micro Channel Architecture(MCA) bus, Enhanced ISA (EISA) bus, Video Electronic StandardsAssociation (VESA) local bus, and Peripheral Component Interconnect(PCI) bus, also known as Mezzanine bus.

Control server 102 typically includes therein, or has access to, avariety of computer-readable media, for instance, database cluster 104.Computer-readable media can be any available media that might beaccessed by control server 102, and includes volatile and nonvolatilemedia, as well as, removable and nonremovable media. Computer-readablemedia might include computer storage media. Computer storage mediaincludes volatile and nonvolatile media, as well as removable andnonremovable media implemented in any method or technology for storageof information, such as computer-readable instructions, data structures,program modules, or other data. In this regard, computer storage mediamight comprise RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVDs) or other optical diskstorage, magnetic cassettes, magnetic tape, magnetic disk storage, orother magnetic storage device, or any other medium which can be used tostore the desired information and which may be accessed by the controlserver 102. Computer storage media does not comprise signals per se.Combinations of any of the above also may be included within the scopeof computer-readable media.

The computer storage media discussed above and illustrated in FIG. 1,including database cluster 104, provide storage of computer-readableinstructions, data structures, program modules, and other data for thecontrol server 102. In some embodiments, data cluster 104 takes the formof a cloud-based data store, and in some embodiments is accessible by acloud-based computing platform.

The control server 102 might operate in a computer network 106 usinglogical connections to one or more remote computers 108. Remotecomputers 108 might be located at a variety of locations in a medical orresearch environment, including clinical laboratories (e.g., moleculardiagnostic laboratories), hospitals and other inpatient settings,veterinary environments, ambulatory settings, medical billing andfinancial offices, hospital administration settings, home healthcareenvironments, and providers' offices. Providers may comprise a treatingphysician or physicians; specialists such as surgeons, radiologists,cardiologists, and oncologists; emergency medical technicians;physicians' assistants; nurse practitioners; nurses; nurses' aides;pharmacists; dieticians; microbiologists; laboratory experts; laboratorytechnologists; genetic counselors; researchers; veterinarians; students;and the like.

The remote computers 108 might also be physically located innontraditional medical care environments so that the entire healthcarecommunity might be capable of integration on the network. The remotecomputers 108 might be personal computers, servers, routers, networkPCs, peer devices, other common network nodes, or the like and mightcomprise some or all of the elements described above in relation to thecontrol server 102. The devices can be personal digital assistants orother like devices.

Exemplary computer networks 106 comprise local area networks (LANs)and/or wide area networks (WANs). Such networking environments arecommonplace in offices, enterprise-wide computer networks, intranets,and the Internet. When utilized in a WAN networking environment, thecontrol server 102 might comprise a modem or other means forestablishing communications over the WAN, such as the Internet. In anetworked environment, program modules or portions thereof might bestored in association with the control server 102, the database cluster104, or any of the remote computers 108. For example, variousapplication programs may reside on the memory associated with any one ormore of the remote computers 108. It will be appreciated by those ofordinary skill in the art that the network connections shown areexemplary and other means of establishing a communications link betweenthe computers (e.g., control server 102 and remote computers 108) mightbe utilized.

In operation, an organization might enter commands and information intothe control server 102 or convey the commands and information to thecontrol server 102 via one or more of the remote computers 108 throughinput devices, such as a keyboard, a pointing device (commonly referredto as a mouse), a trackball, or a touch pad. Other input devicescomprise microphones, satellite dishes, scanners, or the like. Commandsand information might also be sent directly from a remote healthcaredevice to the control server 102. In addition to a monitor, the controlserver 102 and/or remote computers 108 might comprise other peripheraloutput devices, such as speakers and a printer.

In some embodiments, control server 102 is a computing system orplatform made up of one or more computing devices. Embodiments ofcontrol server 102 may be a distributed computing system, a centralizedcomputing system, a single computer such as a desktop or laptop computeror a networked computing system. Thus, in some embodiments, controlserver 102 comprises a multi-agent computer system with software agents.

Turning now to FIG. 2, an exemplary framework of a testing-as-a-servicesystem 200 is shown, in accordance with an aspect of the presentinvention. The testing-as-a-service system 200 is merely an example ofone suitable computing system environment and is not intended to suggestany limitation as to the scope of use or functionality of embodiments ofthe present invention. Neither should the testing-as-a-service system200 be interpreted as having any dependency or requirement related toany single module/component or combination of modules/componentsillustrated therein.

The testing-as-a-service system 200 generally operates to automate theworkflow testing process. More particularly, the testing-as-a-servicesystem 200 enables users to configure, automate and execute repeatingworkflow tests associated with software updates or upgrades. Thisencourages mass deployment of software updates or upgrades to remaincurrent and enables users to exploit the latest innovations.

As shown in FIG. 2, the testing-as-a-service system 200 includes, amongother components not shown, user interface component 202, data capturecomponent 204, data store 206, workflow generator component 208, codegenerator component 210, and workflow executor component 212, all incommunication with one another via a network (not shown). The networkmay include, without limitation, one or more local area networks (LANs)and/or wide area networks (WANs). Such networking environments arecommonplace in offices, enterprise-wide computer networks, intranets,and the Internet.

In some embodiments, one or more of the illustrated components/modulesmay be implemented as stand-alone applications. In other embodiments,one or more of the illustrated components/modules may be distributedacross multiple testing-as-a-service systems. The components/modulesillustrated in FIG. 2 are exemplary in nature and in number and shouldnot be construed as limiting. Any number of components/modules may beemployed to achieve the desired functionality within the scope ofembodiments hereof. Further, components/modules may be located on anynumber of servers. By way of example only, the data capture component204, the workflow generator component 208, the code generator component210, or the workflow executor component 212 might reside on a server,cluster of servers, or a computing device remote from one or more of theremaining components.

It should be understood that this and other arrangements describedherein are set forth only as examples. Other arrangements and elements(e.g., machines, interfaces, functions, orders, and groupings offunctions, etc.) can be used in addition to or instead of those shown,and some elements may be omitted altogether. Further, many of theelements described herein are functional entities that may beimplemented as discrete or distributed components or in conjunction withother components/modules, and in any suitable combination and location.Various functions described herein as being performed by one or moreentities may be carried out by hardware, firmware, and/or software. Forinstance, various functions may be carried out by a processor executinginstructions stored in memory.

Each of the data capture component 204, the workflow generator component208, the code generator component 210, or the workflow executorcomponent 212 may include a processing unit, internal system memory, anda suitable system bus for coupling various system components, includingdata store 206 for storing information (e.g., workflow data, test data,and execution results). Components of the testing-as-a-service system200 typically include, or have access to, a variety of computer-readablemedia.

The testing-as-a-service system 200 is merely exemplary. Whilecomponents of the testing-as-a-service system 200 are illustrated as asingle unit, it will be appreciated that components of thetesting-as-a-service system 200 are scalable. For example, each of thedata capture component 204, the workflow generator component 208, thecode generator component 210, or the workflow executor component 212 mayin actuality include a plurality of computing devices in communicationwith one another. The single unit depictions are meant for clarity, notto limit the scope of embodiments in any form.

As shown in FIG. 2, the testing-as-a-service system 200 includes userinterface component 202, data capture component 204, data store 206,workflow generator component 208, code generator component 210, andworkflow executor component 212.

The user interface component 202 generally provides an interface thatenables a client user to create workflows via the workflow generatorcomponent 208, provide test data that may be captured by data capturecomponent 204 and stored in data store 206, and execute the workflowsvia the workflow executor 212. The user interface component 202 may beconfigured with pre-populated business processes that enable the user toselect various business process as part of a workflow.

In some embodiments, there are three types of processes:navigational/user interface driven processes (e.g., data entry forms),backend processes that are not triggered from a user interface (e.g.,webservice calls such as payer post remittances or inbound HL7transactions), or assertion processes that may validate user assumptionswith real system behavior (e.g., to verify receivable amounts aftercharge postings, to check follow-up history or amounts reimbursed).

The user interface component 202 enables a user to select multiplebusiness processes, as desired, that can be stitched together by theworkflow generator component 208 to build a complex business workflow.Each user interface business process may also be associated with asystem process. For example, a process that admits a patient may launcha patient admission financial user interface.

The user interface component 202 also enables a user to specify testdata that is used by the workflow generator 208 when generating theworkflow and tests. As a user interacts with the user interfacecomponent 202 for a particular business process, the data capturecomponent 204 intercepts the interaction with the user interface, thesequence of execution, and DOM (Document Object Model) events. Once theprocess data is captured, the data capture component 204 saves the datain JSON format and retrieves additional metadata and processinformation. In embodiments, the metadata comprises informationcorresponding to business process specific attributes including, but notlimited to, a patient medical record number, a diagnosis code, orencounter identifier. The process information may include details ofdynamically generated web pages. This data is stored in data store 206and may be used by the workflow generator component 208 during workflowgeneration and the workflow executor component 212 during testing.

The workflow generator component 208 retrieves the workflow data fromdata store 206 and stitches the business processes together usingconnectors. For clarity, a connector is the trigger that executes thenext process in the chain of business processes. A connector maycomprises consists a timer or a conditional trigger (e.g., execute thenext process after four hours or wait until a day-end job is finished).

Upon the workflow generator component 208 stitching together thebusiness processes to create the workflow, the code generator component210 creates the actual code that is necessary to execute the test. Thecode generator component 210 communicates the code (e.g., Selenium code)to the data store 206 where it is saved until requested for execution bythe workflow executor component 212. The code generation processgenerates a readily executable code by mapping the captured data withcorresponding web page DOM controls based on a predefined code template.

The workflow execution component 212 generally executes workflows asscheduled or on-demand as part of the software update or upgradeprocess. To do so, the workflow executor component 212 retrieves theworkflow and test data from data store 206. The workflow may then beexecuted. In some embodiments, a client process may span across manydays (e.g., ten days). Accordingly, the workflow executor component 212executes the tests and backend processes as scheduled by the client.

Execution results 214 may be provided to the user via a user interfacesuch as one provided by the user interface component 202. Executionresults 214 may also be stored in data store 206 and utilized fortroubleshooting and the like. As noted, once the workflow is generated,it can be run repeatedly per a schedule or on-demand. Thus, after eachnew software deployment, the workflows can be triggered to verify thestability and reliability of the software.

In practice, and referring now to FIG. 3, an exemplary workflow ofutilizing a testing-as-a-service system (such as thetesting-as-a-service system 200 of FIG. 2) is shown, in accordance withan aspect of the present invention.

As shown in FIG. 2, a user client 302 may design a workflow 304utilizing the testing-as-a-service system 306. More particularly, theuser client 302 initially selects business processes that complete theworkflow 304. The workflow may be saved by the testing-as-a-servicesystem 306. The testing-a-service system 306 comprises variouscomponents 308 including a user interface component, a workflowgenerator component, and a code generator (such as the user interfacecomponent 202, the workflow generator component 208, and the codegenerator component 210 of FIG. 2).

Once the components 308 of the testing-as-a-service system 306 generatethe workflow and code as described above, that information is saved intodatabase 310. Upon a software update or upgrade being applied to atarget environment 318 (e.g., test or non-production environment), auser may desire to execute a test and can access thetesting-as-a-service system 306 via an application programming interface(API) 312. Accordingly, the workflow engine 314 of thetesting-as-a-service system retrieves data, including test data and theworkflow from database 310 and executes the test on the targetenvironment 318. As the test is executed, the user may also viewworkflow states 316 to see in real-time any errors or unexpected resultsthat may occur. After the test is complete, the workflow engine 314notifies the client 302 of any errors or unexpected results.

Referring to FIG. 4, an illustrative screen display 400 oftesting-as-a-service system suitable to implement embodiments of thepresent invention are shown. More particularly, display 400 illustratesa specific example of workflow automation for an emergency room visitworkflow involving three business process: check-in (admit a patient),revise an encounter (modify patient/visit information), and checkout(discharge the patient).

As shown in display 400, the client users will have the option to pickand choose relevant business processes from the provided list (i.e., theleft pane) 410 to define a workflow. As shown, the user has selectedQuick Check-in 412, Revise Encounter 414, and Check-out 416. Eachselected business process 422, 424, 426 launches the corresponding userinterface where the user inputs any necessary data and proceeds througheach business process until the workflow steps are completed. As shown,the Quick-Check-in 422 user interface has launched and the user mayinput data in the illustrated data fields 430, 432. Additionally, theuser may input configuration details 423, 425, as desired. Such detailsinclude a length of time for each business process test to execute. Oncethe user clicks on Save & Generate 434, the workflow is saved and can bescheduled or utilized as-needed. Upon selecting Launch 436, theauto-generated workflows are executed in sequence to test the workflowand provide assertion to validate the expected results. If the workflowexecutes successfully, the user is prompted 438, and the software updateor upgrade may be safely delivered to the client's productionenvironment.

In FIG. 5, a flow diagram is provided illustrating a method 500 forutilizing a testing-as-a-service system to deploy a new softwarepackage, in accordance with an embodiment of the present invention.Method 500 may be performed by any computing device (such as computingdevice described with respect to FIG. 1) with access totesting-as-a-service system (such as the one described with respect toFIG. 2 or 3) or by one or more components of the testing-as-a-servicesystem.

Initially, at step 502, a user configures the workflow to be tested asdescribed above. Additionally, the user provides one time data entry forthe workflow, as shown at step 504.

At step 506, once the workflow is created by stitching multiple businessprocesses selected by the user, along with adding test data against thebusiness process, the workflow is saved. The workflow comprises a scriptand metadata containing the workflow name and the business process namesused in creating that workflow.

At step 508, once the workflow is configured and saved in a data store,the saved workflow can be executed repeatedly (i.e., scheduled) or asrequired in the target environment (e.g. a test or beta environment)before deploying the software package in a production environment.

At step 510, the testing-as-a-service platform provides a visualizedwithin the internal quality assurance environment and augments theautomation of vertical regression tests. This helps a user betterunderstand the software update or upgrade in terms of business workflowand data setup, resulting in early detection and resolution of issues.

At step 512, early detection of issues at the software level enables arelevant notification to be provided. This notification helps supportact proactively and take necessary actions to avoid go-live delays.

At step 514, a new package (e.g., a software update or upgrade) isdeployed. As shown, each time a new package is deployed, the tests areexecuted again at step 508, and the process repeats. This enables newsoftware packages to be continuously deployed as automated test serviceswill detect errors and notify users as for follow-up and resolution.

Referring now to FIG. 6, a flow diagram is provided illustrating amethod 600 for creating and executing a client workflow in a testenvironment to detect errors in the client workflow, in accordance withembodiments of the present invention. Method 600 may be performed by anycomputing device (such as computing device described with respect toFIG. 1) with access to a testing-as-a-service system (such as the onedescribed with respect to FIG. 2) or by one or more components of thetesting-as-a-service system.

Initially, at step 602, a selection of one or more business processes isreceived. The one or more business processes may correspond to softwarein a health care information technology environment and are combinedinto a client workflow. For example, the one or business processes maycomprise an admission process, an encounter process, and a dischargeprocess.

In some embodiments, the selection of one or more business processes isreceived by intercepting user interaction with the one or more businessprocesses, determining a sequence of execution, and identifying documentobject model events. Each business process of the one or more businessprocesses is connected through connectors, with each connector being atrigger to the next business process in the client workflow. In someembodiments, each business process of the one or more business processesis associated with a system process that launches a separate userinterface.

The user may be prompted to interact with a user interface for eachbusiness process of the one or more business processes. Accordingly, atstep 604, test data and assertion types for each business process of theone or more business processes is received. For example, the test datamay comprise various data entries that a user may make in the normalcourse of using each of the one or more business processes. In thecontext of health care information technology software, those dataentries may include a patient name, gender, date of birth, guarantorbalance, encounter start and end time, discharge destination, insuranceinformation, and the like. The assertion types may be workflow level(e.g., corresponding to an emergency department visit), business processlevel (e.g., corresponding to a patient registration, a patientdischarge, etc.), or field level (e.g., corresponding to a diagnosiscode, attending health professional, generated claim amount, etc.).

At step 606, a script and metadata containing the client workflow nameand the one or more business process names utilized to create the clientworkflow are stored. The script and metadata containing the clientworkflow name and the one or more business process names that isutilized to create the client workflow may be stored in a JSON format ina client environment for workflow code generation.

The stored script and metadata can be used, at step 608, to execute theclient workflow in a target environment. The user may be prompted tovalidate expected results. At step 610, errors are detected in theclient workflow and a notification is provided to a user for follow-upand resolution. In this way, the client workflow may verify thestability and reliability of a software change or update.

Many different arrangements of the various components depicted, as wellas components not shown, are possible without departing from the spiritand scope of the present invention. Embodiments of the present inventionhave been described with the intent to be illustrative rather thanrestrictive. Alternative embodiments will become apparent to thoseskilled in the art that do not depart from its scope. A skilled artisanmay develop alternative means of implementing the aforementionedimprovements without departing from the scope of the present invention.

It will be understood that certain features and subcombinations are ofutility and may be employed without reference to other features andsubcombinations and are contemplated within the scope of the claims. Notall steps listed in the various figures need be carried out in thespecific order described. Accordingly, the scope of the invention isintended to be limited only by the following claims.

What is claimed is:
 1. One or more computer storage media havingcomputer-executable instructions embodied thereon that, when executed bya computer, causes the computer to perform operations, the operationscomprising: receiving a selection of one or more business processes;enabling a user to specify data that is used when generating and testinga client workflow corresponding to the one or more business processesby: (1) intercepting data comprising a user interaction with a userinterface, a sequence of execution, and Document Object Model (DOM)events for the one or more business processes; (2) saving the data inJSON format in a data store and retrieving additional metadata andprocess information corresponding to business process specificattributes including a patient medical record number, a diagnosis code,or encounter identifier; retrieving the data from the data store andstitching the one or more business processes together using connectors,the connectors being a trigger that executes the next business processin the chain of the one or more business processes; generatingexecutable code for the client workflow by mapping the retrieved datawith corresponding web page DOM controls based on a predefined codetemplate; executing the client workflow in a target environment; anddetecting errors in the client workflow and provide a notification to auser for follow-up and resolution.
 2. The media of claim 1, wherein eachbusiness process of the one or more business processes is associatedwith a system process that launches a separate user interface.
 3. Themedia of claim 1, further comprising prompting the user to interact witha user interface for each business process of the one or more businessprocesses.
 4. The media of claim 1, further comprising prompting theuser to validate expected results.
 5. The media of claim 1, wherein eachbusiness process of the one or more business processes is connectedthrough connectors, each connector being a trigger to a next process inthe client workflow.
 6. The media of claim 1, wherein the selection ofone or more business processes is received by intercepting userinteraction with the one or more business processes, determining asequence of execution, and identifying document object model events. 7.The media of claim 1, wherein a script and metadata containing a name ofthe client workflow and names of the one or more business processesutilized to create the client workflow are stored in JSON format in aclient environment for workflow code generation.
 8. The media of claim1, wherein the client workflow verifies a stability and reliability of asoftware change or update.
 9. The media of claim 1, wherein the clientworkflow comprises the one or business processes including an admissionprocess, an encounter process, or a discharge process.
 10. Acomputerized method comprising: receiving a selection of one or morebusiness processes; enabling a user to specify data that is used whengenerating and testing a client workflow corresponding to the one ormore business processes by: (1) intercepting data comprising a userinteraction with a user interface, a sequence of execution, and DocumentObject Model (DOM) events for the one or more business processes; (2)saving the data in JSON format in a data store and retrieving additionalmetadata and process information corresponding to business processspecific attributes including a patient medical record number, adiagnosis code, or encounter identifier; retrieving the data from thedata store and stitching the one or more business processes togetherusing connectors, the connectors being a trigger that executes the nextbusiness process in the chain of the one or more business processes;generating executable code for the client workflow by mapping theretrieved data with corresponding web page DOM controls based on apredefined code template; executing the client workflow in a targetenvironment; and detecting errors in the client workflow and providing anotification to a user for follow-up and resolution.
 11. The method ofclaim 10, wherein each business process of the one or more businessprocesses is associated with a system process that launches a separateuser interface.
 12. The method of claim 10, further comprising promptingthe user to interact with a user interface for each business process ofthe one or more business processes.
 13. The method of claim 10, furthercomprising prompting the user to validate expected results.
 14. Themethod of claim 10, wherein each business process of the one or morebusiness processes is connected through connectors, each connector beinga trigger to a next process in the client workflow.
 15. The method ofclaim 10, wherein the selection of one or more business processes isreceived by intercepting user interaction with the one or more businessprocesses, determining a sequence of execution, and identifying documentobject model events.
 16. The method of claim 10, wherein a script andmetadata containing a name of the client workflow and names of the oneor more business process names utilized to create the client workfloware stored in JSON format in a client environment for workflow codegeneration.
 17. The method of claim 10, wherein the client workflowverifies a stability and reliability of a software change or update. 18.The method of claim 10, wherein the client workflow comprises the one orbusiness processes including an admission process, an encounter process,or a discharge process.
 19. A system comprising: a processor; and acomputer storage medium storing computer-usable instructions that, whenused by the processor, cause the processor to: receive a selection ofone or more business processes; enable a user to specify data that isused when generating and testing a client workflow corresponding to theone or more business processes by: (1) intercepting data comprising auser interaction with a user interface, a sequence of execution, andDocument Object Model (DOM) events for the one or more businessprocesses; (2) saving the data in JSON format in a data store andretrieving additional metadata and process information corresponding tobusiness process specific attributes including a patient medical recordnumber, a diagnosis code, or encounter identifier; retrieving the datafrom the data store and stitching the one or more business processestogether using connectors, the connectors being a trigger that executesthe next business process in the chain of the one or more businessprocesses; generating executable code for the client workflow by mappingthe retrieved data with corresponding web page DOM controls based on apredefined code template; execute the client workflow in a targetenvironment to verify a stability and reliability of a software changeor update; and detect errors in the client workflow and provide anotification to a user for follow-up and resolution.
 20. The system ofclaim 19, further comprising: prompting the user to interact with a userinterface for each business process of the one or more businessprocesses; and prompting the user to validate expected results.